package com.appkubes.mall.core.pojo;

import com.appkubes.mall.core.po.FintechUserStudent;
import com.appkubes.mall.core.po.FintechUserStudentExample;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.UpdateProvider;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.type.JdbcType;

public interface FintechUserStudentMapper {
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_student
     *
     * @mbg.generated
     */
    @SelectProvider(type=FintechUserStudentSqlProvider.class, method="countByExample")
    long countByExample(FintechUserStudentExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_student
     *
     * @mbg.generated
     */
    @DeleteProvider(type=FintechUserStudentSqlProvider.class, method="deleteByExample")
    int deleteByExample(FintechUserStudentExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_student
     *
     * @mbg.generated
     */
    @Delete({
        "delete from fintech_user_student",
        "where user_key = #{userKey,jdbcType=VARCHAR}"
    })
    int deleteByPrimaryKey(String userKey);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_student
     *
     * @mbg.generated
     */
    @Insert({
        "insert into fintech_user_student (user_key, student_no, ",
        "school_name, school_living_address, ",
        "chsi_account, chsi_pwd, ",
        "major_name, grade, ",
        "huabei_amount, has_credit_card, ",
        "has_part_time_job, monthly_income, ",
        "ic_card_photo, create_time, ",
        "update_time, version)",
        "values (#{userKey,jdbcType=VARCHAR}, #{studentNo,jdbcType=VARCHAR}, ",
        "#{schoolName,jdbcType=VARCHAR}, #{schoolLivingAddress,jdbcType=VARCHAR}, ",
        "#{chsiAccount,jdbcType=VARCHAR}, #{chsiPwd,jdbcType=VARCHAR}, ",
        "#{majorName,jdbcType=VARCHAR}, #{grade,jdbcType=VARCHAR}, ",
        "#{huabeiAmount,jdbcType=INTEGER}, #{hasCreditCard,jdbcType=SMALLINT}, ",
        "#{hasPartTimeJob,jdbcType=SMALLINT}, #{monthlyIncome,jdbcType=INTEGER}, ",
        "#{icCardPhoto,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, ",
        "#{updateTime,jdbcType=TIMESTAMP}, #{version,jdbcType=INTEGER})"
    })
    int insert(FintechUserStudent record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_student
     *
     * @mbg.generated
     */
    @InsertProvider(type=FintechUserStudentSqlProvider.class, method="insertSelective")
    int insertSelective(FintechUserStudent record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_student
     *
     * @mbg.generated
     */
    @SelectProvider(type=FintechUserStudentSqlProvider.class, method="selectByExample")
    @Results({
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="student_no", property="studentNo", jdbcType=JdbcType.VARCHAR),
        @Result(column="school_name", property="schoolName", jdbcType=JdbcType.VARCHAR),
        @Result(column="school_living_address", property="schoolLivingAddress", jdbcType=JdbcType.VARCHAR),
        @Result(column="chsi_account", property="chsiAccount", jdbcType=JdbcType.VARCHAR),
        @Result(column="chsi_pwd", property="chsiPwd", jdbcType=JdbcType.VARCHAR),
        @Result(column="major_name", property="majorName", jdbcType=JdbcType.VARCHAR),
        @Result(column="grade", property="grade", jdbcType=JdbcType.VARCHAR),
        @Result(column="huabei_amount", property="huabeiAmount", jdbcType=JdbcType.INTEGER),
        @Result(column="has_credit_card", property="hasCreditCard", jdbcType=JdbcType.SMALLINT),
        @Result(column="has_part_time_job", property="hasPartTimeJob", jdbcType=JdbcType.SMALLINT),
        @Result(column="monthly_income", property="monthlyIncome", jdbcType=JdbcType.INTEGER),
        @Result(column="ic_card_photo", property="icCardPhoto", jdbcType=JdbcType.VARCHAR),
        @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="version", property="version", jdbcType=JdbcType.INTEGER)
    })
    List<FintechUserStudent> selectByExampleWithRowbounds(FintechUserStudentExample example, RowBounds rowBounds);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_student
     *
     * @mbg.generated
     */
    @SelectProvider(type=FintechUserStudentSqlProvider.class, method="selectByExample")
    @Results({
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="student_no", property="studentNo", jdbcType=JdbcType.VARCHAR),
        @Result(column="school_name", property="schoolName", jdbcType=JdbcType.VARCHAR),
        @Result(column="school_living_address", property="schoolLivingAddress", jdbcType=JdbcType.VARCHAR),
        @Result(column="chsi_account", property="chsiAccount", jdbcType=JdbcType.VARCHAR),
        @Result(column="chsi_pwd", property="chsiPwd", jdbcType=JdbcType.VARCHAR),
        @Result(column="major_name", property="majorName", jdbcType=JdbcType.VARCHAR),
        @Result(column="grade", property="grade", jdbcType=JdbcType.VARCHAR),
        @Result(column="huabei_amount", property="huabeiAmount", jdbcType=JdbcType.INTEGER),
        @Result(column="has_credit_card", property="hasCreditCard", jdbcType=JdbcType.SMALLINT),
        @Result(column="has_part_time_job", property="hasPartTimeJob", jdbcType=JdbcType.SMALLINT),
        @Result(column="monthly_income", property="monthlyIncome", jdbcType=JdbcType.INTEGER),
        @Result(column="ic_card_photo", property="icCardPhoto", jdbcType=JdbcType.VARCHAR),
        @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="version", property="version", jdbcType=JdbcType.INTEGER)
    })
    List<FintechUserStudent> selectByExample(FintechUserStudentExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_student
     *
     * @mbg.generated
     */
    @Select({
        "select",
        "user_key, student_no, school_name, school_living_address, chsi_account, chsi_pwd, ",
        "major_name, grade, huabei_amount, has_credit_card, has_part_time_job, monthly_income, ",
        "ic_card_photo, create_time, update_time, version",
        "from fintech_user_student",
        "where user_key = #{userKey,jdbcType=VARCHAR}"
    })
    @Results({
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="student_no", property="studentNo", jdbcType=JdbcType.VARCHAR),
        @Result(column="school_name", property="schoolName", jdbcType=JdbcType.VARCHAR),
        @Result(column="school_living_address", property="schoolLivingAddress", jdbcType=JdbcType.VARCHAR),
        @Result(column="chsi_account", property="chsiAccount", jdbcType=JdbcType.VARCHAR),
        @Result(column="chsi_pwd", property="chsiPwd", jdbcType=JdbcType.VARCHAR),
        @Result(column="major_name", property="majorName", jdbcType=JdbcType.VARCHAR),
        @Result(column="grade", property="grade", jdbcType=JdbcType.VARCHAR),
        @Result(column="huabei_amount", property="huabeiAmount", jdbcType=JdbcType.INTEGER),
        @Result(column="has_credit_card", property="hasCreditCard", jdbcType=JdbcType.SMALLINT),
        @Result(column="has_part_time_job", property="hasPartTimeJob", jdbcType=JdbcType.SMALLINT),
        @Result(column="monthly_income", property="monthlyIncome", jdbcType=JdbcType.INTEGER),
        @Result(column="ic_card_photo", property="icCardPhoto", jdbcType=JdbcType.VARCHAR),
        @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="version", property="version", jdbcType=JdbcType.INTEGER)
    })
    FintechUserStudent selectByPrimaryKey(String userKey);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_student
     *
     * @mbg.generated
     */
    @UpdateProvider(type=FintechUserStudentSqlProvider.class, method="updateByExampleSelective")
    int updateByExampleSelective(@Param("record") FintechUserStudent record, @Param("example") FintechUserStudentExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_student
     *
     * @mbg.generated
     */
    @UpdateProvider(type=FintechUserStudentSqlProvider.class, method="updateByExample")
    int updateByExample(@Param("record") FintechUserStudent record, @Param("example") FintechUserStudentExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_student
     *
     * @mbg.generated
     */
    @UpdateProvider(type=FintechUserStudentSqlProvider.class, method="updateByPrimaryKeySelective")
    int updateByPrimaryKeySelective(FintechUserStudent record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_student
     *
     * @mbg.generated
     */
    @Update({
        "update fintech_user_student",
        "set student_no = #{studentNo,jdbcType=VARCHAR},",
          "school_name = #{schoolName,jdbcType=VARCHAR},",
          "school_living_address = #{schoolLivingAddress,jdbcType=VARCHAR},",
          "chsi_account = #{chsiAccount,jdbcType=VARCHAR},",
          "chsi_pwd = #{chsiPwd,jdbcType=VARCHAR},",
          "major_name = #{majorName,jdbcType=VARCHAR},",
          "grade = #{grade,jdbcType=VARCHAR},",
          "huabei_amount = #{huabeiAmount,jdbcType=INTEGER},",
          "has_credit_card = #{hasCreditCard,jdbcType=SMALLINT},",
          "has_part_time_job = #{hasPartTimeJob,jdbcType=SMALLINT},",
          "monthly_income = #{monthlyIncome,jdbcType=INTEGER},",
          "ic_card_photo = #{icCardPhoto,jdbcType=VARCHAR},",
          "create_time = #{createTime,jdbcType=TIMESTAMP},",
          "update_time = #{updateTime,jdbcType=TIMESTAMP},",
          "version = #{version,jdbcType=INTEGER}",
        "where user_key = #{userKey,jdbcType=VARCHAR}"
    })
    int updateByPrimaryKey(FintechUserStudent record);
}